"""
async & await关键字实现协程
"""
import asyncio


async def func1():
    print(1)
    # todo 网络IO请求：下载一张图片
    await asyncio.sleep(2)  # todo 遇到IO耗时操作，自动化切换到tasks中的其他任务
    print(2)


async def func2():
    print(3)
    # todo 网络IO请求：下载一张图片
    await asyncio.sleep(2)  # todo 遇到IO耗时操作，自动化切换到tasks中的其他任务
    print(4)


tasks = [
    asyncio.ensure_future(func1()),
    asyncio.ensure_future(func2())
]


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(asyncio.wait(tasks))
